This disclosure relates generally to physically unclonable function (PUF) circuitry along with methods of generating numbers. In one embodiment, the PUF circuitry includes a memory, a memory control circuitry, and whitening circuitry. The memory includes an array of memory cells operable to store variable bit states. To generate one or more random numbers, the memory control circuit is configured to reset the array of memory cells so that the variable bit states stored by the array of memory cells are each provided in a first bit state. Then, the memory control circuit implements at least one sequence of memory cycles on the array of the memory cells so that some of the variable bit states are retained in the first bit state and some of the variable bit states are each changed to a second bit state. However, in certain regions of the array, the memory cells may be biased toward the first bit state or the second bit state.
To reduce or eliminate the bias from the array, whitening circuitry is configured to generate a random number comprising random number bits in response to the memory control circuit implementing the at least one sequence of memory cycles on the array of the memory cells. The whitening circuitry is configured to provide the random number bits of the random number based on the variable bit states stored by the array of the memory cells, such that on average the whitening circuitry is configured to provide approximately half of the random number bits in the first bit state and half of random number bits in the second bit state. The whitening circuitry increases a quality of the randomness of random numbers generated by the PUF circuitry as quantified by National Institute of Standards and Technology (NIST) randomness tests. Furthermore, the whitening circuitry allows for robust memory types to be used such as flash memory, which is not subject to stress-induced leakage current (SILC) or other common aging defects.